/*
 * Define una implentación para una pila utilizando como base 
 * el ArrayList de Java.
 * 
 * Autor: Jorge Luis Martínez
 */

package Stack;

import java.util.Vector;

/**
 * Implementa la interface Stack utilizando un Vector de Java.
 * @author Jorge Luis Martínez
 */
public class StackVector<E> implements Stack<E> {
    protected Vector<E> datos;

    /**
     * Inicializa los datos de la pila.
     * @Pre 
     * @Post 
     */
    public StackVector(){
        datos = new Vector<>();
    }
    
    @Override
    public void push(E item) {
        datos.add(item);
    }

    @Override
    public E pop() {
        return datos.remove( size() - 1 );
    }

    @Override
    public E peek() {
        return datos.lastElement();
    }

    @Override
    public boolean empty() {
        return datos.isEmpty();
    }

    @Override
    public int size() {
        return datos.size();
    }
}
